*
* $Id$
*
* $Log: grndmq.F,v $
* Revision 1.1.1.1  2002/06/16 15:18:41  hristov
* Separate distribution  of Geant3
*
* Revision 1.1.1.1  1999/05/18 15:55:21  fca
* AliRoot sources
*
* Revision 1.1.1.1  1995/10/24 10:21:42  cernlib
* Geant
*
*
#include "geant321/pilot.h"
*CMZ :  3.21/04 31/10/94  10.11.27  by  S.Ravndal
*-- Author :
      SUBROUTINE GRNDMQ(IS1,IS2,ISEQ,CHOPT)
C.
C.    ******************************************************************
C.    *                                                                *
C.    *       To set/retrieve the seed of the random number generator  *
C.    *        Copy of the CERN Library routine RECUSQ                 *
C.    *        Each sequence has a period of 10**9 numbers             *
C.    *                                                                *
C.    *    ==>Called by : <USER>, many GEANT routines                  *
C.    *       Author    R.Brun, F.Carminati  *********                 *
C.    *                                                                *
C.    ******************************************************************
C.
#include "geant321/gcbank.inc"
      CHARACTER*(*) CHOPT
      CHARACTER*12  CCHOPT
#if defined(CERNLIB_CRAY)
      REAL ISEED
#endif
#if defined(CERNLIB_IBMALL)||defined(CERNLIB_IBMRT)||defined(CERNLIB_APO10K)||defined(CERNLIB_HPUX)||defined(CERNLIB_MSDOS)||defined(CERNLIB_WINNT)
      DOUBLE PRECISION ISEED
#endif
      PARAMETER  (MAXSEQ=215)
      COMMON / GCRNDM / JSEQ(2), ISEED(2,MAXSEQ)
      DIMENSION  LSEQS(2,MAXSEQ)
      DATA LSEQS(1,  1),LSEQS(2,  1 )/      9876,     54321/
      DATA LSEQS(1,  2),LSEQS(2,  2 )/1299961164, 253987020/
      DATA LSEQS(1,  3),LSEQS(2,  3 )/ 669708517,2079157264/
      DATA LSEQS(1,  4),LSEQS(2,  4 )/ 190904760, 417696270/
      DATA LSEQS(1,  5),LSEQS(2,  5 )/1289741558,1376336092/
      DATA LSEQS(1,  6),LSEQS(2,  6 )/1803730167, 324952955/
      DATA LSEQS(1,  7),LSEQS(2,  7 )/ 489854550, 582847132/
      DATA LSEQS(1,  8),LSEQS(2,  8 )/1348037628,1661577989/
      DATA LSEQS(1,  9),LSEQS(2,  9 )/ 350557787,1155446919/
      DATA LSEQS(1, 10),LSEQS(2, 10 )/ 591502945, 634133404/
      DATA LSEQS(1, 11),LSEQS(2, 11 )/1901084678, 862916278/
      DATA LSEQS(1, 12),LSEQS(2, 12 )/1988640932,1785523494/
      DATA LSEQS(1, 13),LSEQS(2, 13 )/1873836227, 508007031/
      DATA LSEQS(1, 14),LSEQS(2, 14 )/1146416592, 967585720/
      DATA LSEQS(1, 15),LSEQS(2, 15 )/1837193353,1522927634/
      DATA LSEQS(1, 16),LSEQS(2, 16 )/  38219936, 921609208/
      DATA LSEQS(1, 17),LSEQS(2, 17 )/ 349152748, 112892610/
      DATA LSEQS(1, 18),LSEQS(2, 18 )/ 744459040,1735807920/
      DATA LSEQS(1, 19),LSEQS(2, 19 )/1983990104, 728277902/
      DATA LSEQS(1, 20),LSEQS(2, 20 )/ 309164507,2126677523/
      DATA LSEQS(1, 21),LSEQS(2, 21 )/ 362993787,1897782044/
      DATA LSEQS(1, 22),LSEQS(2, 22 )/ 556776976, 462072869/
      DATA LSEQS(1, 23),LSEQS(2, 23 )/1584900822,2019394912/
      DATA LSEQS(1, 24),LSEQS(2, 24 )/1249892722, 791083656/
      DATA LSEQS(1, 25),LSEQS(2, 25 )/1686600998,1983731097/
      DATA LSEQS(1, 26),LSEQS(2, 26 )/1127381380, 198976625/
      DATA LSEQS(1, 27),LSEQS(2, 27 )/1999420861,1810452455/
      DATA LSEQS(1, 28),LSEQS(2, 28 )/1972906041, 664182577/
      DATA LSEQS(1, 29),LSEQS(2, 29 )/  84636481,1291886301/
      DATA LSEQS(1, 30),LSEQS(2, 30 )/1186362995, 954388413/
      DATA LSEQS(1, 31),LSEQS(2, 31 )/2141621785,  61738584/
      DATA LSEQS(1, 32),LSEQS(2, 32 )/1969581251,1557880415/
      DATA LSEQS(1, 33),LSEQS(2, 33 )/1150606439, 136325185/
      DATA LSEQS(1, 34),LSEQS(2, 34 )/  95187861,1592224108/
      DATA LSEQS(1, 35),LSEQS(2, 35 )/ 940517655,1629971798/
      DATA LSEQS(1, 36),LSEQS(2, 36 )/ 215350428, 922659102/
      DATA LSEQS(1, 37),LSEQS(2, 37 )/ 786161212,1121345074/
      DATA LSEQS(1, 38),LSEQS(2, 38 )/1450830056,1922787776/
      DATA LSEQS(1, 39),LSEQS(2, 39 )/1696578057,2025150487/
      DATA LSEQS(1, 40),LSEQS(2, 40 )/1803414346,1851324780/
      DATA LSEQS(1, 41),LSEQS(2, 41 )/1017898585,1452594263/
      DATA LSEQS(1, 42),LSEQS(2, 42 )/1184497978,  82122239/
      DATA LSEQS(1, 43),LSEQS(2, 43 )/ 633338765,1829684974/
      DATA LSEQS(1, 44),LSEQS(2, 44 )/ 430889421, 230039326/
      DATA LSEQS(1, 45),LSEQS(2, 45 )/ 492544653,  76320266/
      DATA LSEQS(1, 46),LSEQS(2, 46 )/ 389386975,1314148944/
      DATA LSEQS(1, 47),LSEQS(2, 47 )/1720322786, 709120323/
      DATA LSEQS(1, 48),LSEQS(2, 48 )/1868768216,1992898523/
      DATA LSEQS(1, 49),LSEQS(2, 49 )/ 443210610, 811117710/
      DATA LSEQS(1, 50),LSEQS(2, 50 )/1191938868,1548484733/
      DATA LSEQS(1, 51),LSEQS(2, 51 )/ 616890172, 159787986/
      DATA LSEQS(1, 52),LSEQS(2, 52 )/ 935835339,1231440405/
      DATA LSEQS(1, 53),LSEQS(2, 53 )/1058009367,1527613300/
      DATA LSEQS(1, 54),LSEQS(2, 54 )/1463148129,1970575097/
      DATA LSEQS(1, 55),LSEQS(2, 55 )/1795336935, 434768675/
      DATA LSEQS(1, 56),LSEQS(2, 56 )/ 274019517, 605098487/
      DATA LSEQS(1, 57),LSEQS(2, 57 )/ 483689317, 217146977/
      DATA LSEQS(1, 58),LSEQS(2, 58 )/2070804364, 340596558/
      DATA LSEQS(1, 59),LSEQS(2, 59 )/ 930226308,1602100969/
      DATA LSEQS(1, 60),LSEQS(2, 60 )/ 989324440, 801809442/
      DATA LSEQS(1, 61),LSEQS(2, 61 )/ 410606853,1893139948/
      DATA LSEQS(1, 62),LSEQS(2, 62 )/1583588576,1219225407/
      DATA LSEQS(1, 63),LSEQS(2, 63 )/2102034391,1394921405/
      DATA LSEQS(1, 64),LSEQS(2, 64 )/2005037790,2031006861/
      DATA LSEQS(1, 65),LSEQS(2, 65 )/1244218766, 923231061/
      DATA LSEQS(1, 66),LSEQS(2, 66 )/  49312790, 775496649/
      DATA LSEQS(1, 67),LSEQS(2, 67 )/ 721012176, 321339902/
      DATA LSEQS(1, 68),LSEQS(2, 68 )/1719909107,1865748178/
      DATA LSEQS(1, 69),LSEQS(2, 69 )/1156177430,1257110891/
      DATA LSEQS(1, 70),LSEQS(2, 70 )/ 307561322,1918244397/
      DATA LSEQS(1, 71),LSEQS(2, 71 )/ 906041433, 360476981/
      DATA LSEQS(1, 72),LSEQS(2, 72 )/1591375755, 268492659/
      DATA LSEQS(1, 73),LSEQS(2, 73 )/ 461522398, 227343256/
      DATA LSEQS(1, 74),LSEQS(2, 74 )/2145930725,2020665454/
      DATA LSEQS(1, 75),LSEQS(2, 75 )/1938419274,1331283701/
      DATA LSEQS(1, 76),LSEQS(2, 76 )/ 174405412, 524140103/
      DATA LSEQS(1, 77),LSEQS(2, 77 )/ 494343653,  18063908/
      DATA LSEQS(1, 78),LSEQS(2, 78 )/1025534808, 181709577/
      DATA LSEQS(1, 79),LSEQS(2, 79 )/2048959776,1913665637/
      DATA LSEQS(1, 80),LSEQS(2, 80 )/ 950636517, 794796256/
      DATA LSEQS(1, 81),LSEQS(2, 81 )/1828843197,1335757744/
      DATA LSEQS(1, 82),LSEQS(2, 82 )/ 211109723, 983900607/
      DATA LSEQS(1, 83),LSEQS(2, 83 )/ 825474095,1046009991/
      DATA LSEQS(1, 84),LSEQS(2, 84 )/ 374915657, 381856628/
      DATA LSEQS(1, 85),LSEQS(2, 85 )/1241296328, 698149463/
      DATA LSEQS(1, 86),LSEQS(2, 86 )/1260624655,1024538273/
      DATA LSEQS(1, 87),LSEQS(2, 87 )/ 900676210,1628865823/
      DATA LSEQS(1, 88),LSEQS(2, 88 )/ 697951025, 500570753/
      DATA LSEQS(1, 89),LSEQS(2, 89 )/1007920268,1708398558/
      DATA LSEQS(1, 90),LSEQS(2, 90 )/ 264596520, 624727803/
      DATA LSEQS(1, 91),LSEQS(2, 91 )/1977924811, 674673241/
      DATA LSEQS(1, 92),LSEQS(2, 92 )/1440257718, 271184151/
      DATA LSEQS(1, 93),LSEQS(2, 93 )/1928778847, 993535203/
      DATA LSEQS(1, 94),LSEQS(2, 94 )/1307807366,1801502463/
      DATA LSEQS(1, 95),LSEQS(2, 95 )/1498732610, 300876954/
      DATA LSEQS(1, 96),LSEQS(2, 96 )/1617712402,1574250679/
      DATA LSEQS(1, 97),LSEQS(2, 97 )/1261800762,1556667280/
      DATA LSEQS(1, 98),LSEQS(2, 98 )/ 949929273, 560721070/
      DATA LSEQS(1, 99),LSEQS(2, 99 )/1766170474,1953522912/
      DATA LSEQS(1,100),LSEQS(2,100 )/1849939248,  19435166/
      DATA LSEQS(1,101),LSEQS(2,101 )/ 887262858,1219627824/
      DATA LSEQS(1,102),LSEQS(2,102 )/ 483086133, 603728993/
      DATA LSEQS(1,103),LSEQS(2,103 )/1330541052,1582596025/
      DATA LSEQS(1,104),LSEQS(2,104 )/1850591475, 723593133/
      DATA LSEQS(1,105),LSEQS(2,105 )/1431775678,1558439000/
      DATA LSEQS(1,106),LSEQS(2,106 )/ 922493739,1356554404/
      DATA LSEQS(1,107),LSEQS(2,107 )/1058517206, 948567762/
      DATA LSEQS(1,108),LSEQS(2,108 )/ 709067283,1350890215/
      DATA LSEQS(1,109),LSEQS(2,109 )/1044787723,2144304941/
      DATA LSEQS(1,110),LSEQS(2,110 )/ 999707003, 513837520/
      DATA LSEQS(1,111),LSEQS(2,111 )/2140038663,1850568788/
      DATA LSEQS(1,112),LSEQS(2,112 )/1803100150, 127574047/
      DATA LSEQS(1,113),LSEQS(2,113 )/ 867445693,1149173981/
      DATA LSEQS(1,114),LSEQS(2,114 )/ 408583729, 914837991/
      DATA LSEQS(1,115),LSEQS(2,115 )/1166715497, 602315845/
      DATA LSEQS(1,116),LSEQS(2,116 )/ 430738528,1743308384/
      DATA LSEQS(1,117),LSEQS(2,117 )/1388022681,1760110496/
      DATA LSEQS(1,118),LSEQS(2,118 )/1664028066, 654300326/
      DATA LSEQS(1,119),LSEQS(2,119 )/1767741172,1338181197/
      DATA LSEQS(1,120),LSEQS(2,120 )/1625723550,1742482745/
      DATA LSEQS(1,121),LSEQS(2,121 )/ 464486085,1507852127/
      DATA LSEQS(1,122),LSEQS(2,122 )/ 754082421,1187454014/
      DATA LSEQS(1,123),LSEQS(2,123 )/1315342834, 425995190/
      DATA LSEQS(1,124),LSEQS(2,124 )/ 960416608,2004255418/
      DATA LSEQS(1,125),LSEQS(2,125 )/1262630671, 671761697/
      DATA LSEQS(1,126),LSEQS(2,126 )/  59809238, 103525918/
      DATA LSEQS(1,127),LSEQS(2,127 )/1205644919,2107823293/
      DATA LSEQS(1,128),LSEQS(2,128 )/1615183160,1152411412/
      DATA LSEQS(1,129),LSEQS(2,129 )/1024474681,2118672937/
      DATA LSEQS(1,130),LSEQS(2,130 )/1703877649,1235091369/
      DATA LSEQS(1,131),LSEQS(2,131 )/1821417852,1098463802/
      DATA LSEQS(1,132),LSEQS(2,132 )/1738806466,1529062843/
      DATA LSEQS(1,133),LSEQS(2,133 )/ 620780646,1654833544/
      DATA LSEQS(1,134),LSEQS(2,134 )/1070174101, 795158254/
      DATA LSEQS(1,135),LSEQS(2,135 )/ 658537995,1693620426/
      DATA LSEQS(1,136),LSEQS(2,136 )/2055317555, 508053916/
      DATA LSEQS(1,137),LSEQS(2,137 )/1647371686,1282395762/
      DATA LSEQS(1,138),LSEQS(2,138 )/  29067379, 409683067/
      DATA LSEQS(1,139),LSEQS(2,139 )/1763495989,1917939635/
      DATA LSEQS(1,140),LSEQS(2,140 )/1602690753, 810926582/
      DATA LSEQS(1,141),LSEQS(2,141 )/ 885787576, 513818500/
      DATA LSEQS(1,142),LSEQS(2,142 )/1853512561,1195205756/
      DATA LSEQS(1,143),LSEQS(2,143 )/1798585498,1970460256/
      DATA LSEQS(1,144),LSEQS(2,144 )/1819261032,1306536501/
      DATA LSEQS(1,145),LSEQS(2,145 )/1133245275,     37901/
      DATA LSEQS(1,146),LSEQS(2,146 )/ 689459799,1334389069/
      DATA LSEQS(1,147),LSEQS(2,147 )/1730609912,1854586207/
      DATA LSEQS(1,148),LSEQS(2,148 )/1556832175,1228729041/
      DATA LSEQS(1,149),LSEQS(2,149 )/ 251375753, 683687209/
      DATA LSEQS(1,150),LSEQS(2,150 )/2083946182,1763106152/
      DATA LSEQS(1,151),LSEQS(2,151 )/2142981854,1365385561/
      DATA LSEQS(1,152),LSEQS(2,152 )/ 763711891,1735754548/
      DATA LSEQS(1,153),LSEQS(2,153 )/1581256466, 173689858/
      DATA LSEQS(1,154),LSEQS(2,154 )/2121337132,1247108250/
      DATA LSEQS(1,155),LSEQS(2,155 )/1004003636, 891894307/
      DATA LSEQS(1,156),LSEQS(2,156 )/ 569816524, 358675254/
      DATA LSEQS(1,157),LSEQS(2,157 )/ 626626425, 116062841/
      DATA LSEQS(1,158),LSEQS(2,158 )/ 632086003, 861268491/
      DATA LSEQS(1,159),LSEQS(2,159 )/1008211580, 779404957/
      DATA LSEQS(1,160),LSEQS(2,160 )/1134217766,1766838261/
      DATA LSEQS(1,161),LSEQS(2,161 )/1423829292,1706666192/
      DATA LSEQS(1,162),LSEQS(2,162 )/ 942037869,1549358884/
      DATA LSEQS(1,163),LSEQS(2,163 )/1959429535, 480779114/
      DATA LSEQS(1,164),LSEQS(2,164 )/ 778311037,1940360875/
      DATA LSEQS(1,165),LSEQS(2,165 )/1531372185,2009078158/
      DATA LSEQS(1,166),LSEQS(2,166 )/ 241935492,1050047003/
      DATA LSEQS(1,167),LSEQS(2,167 )/ 272453504,1870883868/
      DATA LSEQS(1,168),LSEQS(2,168 )/ 390441332,1057903098/
      DATA LSEQS(1,169),LSEQS(2,169 )/1230238834,1548117688/
      DATA LSEQS(1,170),LSEQS(2,170 )/1242956379,1217296445/
      DATA LSEQS(1,171),LSEQS(2,171 )/ 515648357,1675011378/
      DATA LSEQS(1,172),LSEQS(2,172 )/ 364477932, 355212934/
      DATA LSEQS(1,173),LSEQS(2,173 )/2096008713,1570161804/
      DATA LSEQS(1,174),LSEQS(2,174 )/1409752526, 214033983/
      DATA LSEQS(1,175),LSEQS(2,175 )/1288158292,1760636178/
      DATA LSEQS(1,176),LSEQS(2,176 )/ 407562666,1265144848/
      DATA LSEQS(1,177),LSEQS(2,177 )/1071056491,1582316946/
      DATA LSEQS(1,178),LSEQS(2,178 )/1014143949, 911406955/
      DATA LSEQS(1,179),LSEQS(2,179 )/ 203080461, 809380052/
      DATA LSEQS(1,180),LSEQS(2,180 )/ 125647866,1705464126/
      DATA LSEQS(1,181),LSEQS(2,181 )/2015685843, 599230667/
      DATA LSEQS(1,182),LSEQS(2,182 )/1425476020, 668203729/
      DATA LSEQS(1,183),LSEQS(2,183 )/1673735652, 567931803/
      DATA LSEQS(1,184),LSEQS(2,184 )/1714199325, 181737617/
      DATA LSEQS(1,185),LSEQS(2,185 )/1389137652, 678147926/
      DATA LSEQS(1,186),LSEQS(2,186 )/ 288547803, 435433694/
      DATA LSEQS(1,187),LSEQS(2,187 )/ 200159281, 654399753/
      DATA LSEQS(1,188),LSEQS(2,188 )/1580828223,1298308945/
      DATA LSEQS(1,189),LSEQS(2,189 )/1832286107, 169991953/
      DATA LSEQS(1,190),LSEQS(2,190 )/ 182557704,1046541065/
      DATA LSEQS(1,191),LSEQS(2,191 )/1688025575,1248944426/
      DATA LSEQS(1,192),LSEQS(2,192 )/1508287706,1220577001/
      DATA LSEQS(1,193),LSEQS(2,193 )/  36721212,1377275347/
      DATA LSEQS(1,194),LSEQS(2,194 )/1968679856,1675229747/
      DATA LSEQS(1,195),LSEQS(2,195 )/ 279109231,1835333261/
      DATA LSEQS(1,196),LSEQS(2,196 )/1358617667,1416978076/
      DATA LSEQS(1,197),LSEQS(2,197 )/ 740626186,2103913602/
      DATA LSEQS(1,198),LSEQS(2,198 )/1882655908, 251341858/
      DATA LSEQS(1,199),LSEQS(2,199 )/ 648016670,1459615287/
      DATA LSEQS(1,200),LSEQS(2,200 )/ 780255321, 154906988/
      DATA LSEQS(1,201),LSEQS(2,201 )/ 857296483, 203375965/
      DATA LSEQS(1,202),LSEQS(2,202 )/1631676846, 681204578/
      DATA LSEQS(1,203),LSEQS(2,203 )/1906971307,1623728832/
      DATA LSEQS(1,204),LSEQS(2,204 )/1541899600,1168449797/
      DATA LSEQS(1,205),LSEQS(2,205 )/1267051693,1020078717/
      DATA LSEQS(1,206),LSEQS(2,206 )/1998673940,1298394942/
      DATA LSEQS(1,207),LSEQS(2,207 )/1914117058,1381290704/
      DATA LSEQS(1,208),LSEQS(2,208 )/ 426068513,1381618498/
      DATA LSEQS(1,209),LSEQS(2,209 )/ 139365577,1598767734/
      DATA LSEQS(1,210),LSEQS(2,210 )/2129910384, 952266588/
      DATA LSEQS(1,211),LSEQS(2,211 )/ 661788054,  19661356/
      DATA LSEQS(1,212),LSEQS(2,212 )/1104640222, 240506063/
      DATA LSEQS(1,213),LSEQS(2,213 )/ 356133630,1676634527/
      DATA LSEQS(1,214),LSEQS(2,214 )/ 242242374,1863206182/
      DATA LSEQS(1,215),LSEQS(2,215 )/ 957935844,1490681416/
C
      CCHOPT = CHOPT
      IF(CCHOPT.EQ.' ') THEN
        IF(ISEQ.GT.215.OR.ISEQ.LT.1) THEN
            ISEED(1,1) = LSEQS(1,1)
            ISEED(2,1) = LSEQS(2,1)
            JSEQ(1)    = 1
        ELSE
            ISEED(1,ISEQ) = LSEQS(1,ISEQ)
            ISEED(2,ISEQ) = LSEQS(2,ISEQ)
            JSEQ(1)    = ISEQ
        END IF
        GO TO 999
      END IF
      IF(INDEX(CHOPT,'S').NE.0) THEN
        IF(ISEQ.GT.0) JSEQ(1) = ISEQ
        IF(IS1.GT.0.AND.IS2.GT.0) THEN
          ISEED(1,JSEQ(1)) = IS1
          ISEED(2,JSEQ(1)) = IS2
        END IF
        IF(INDEX(CHOPT,'H').NE.0) THEN
          IQ(JHEAD+3) = IS1
          IQ(JHEAD+4) = IS2
        END IF
      END IF
      IF(INDEX(CHOPT,'G').NE.0) THEN
        IF(ISEQ.LE.0)THEN
           KSEQ = JSEQ(1)
        ELSE
           KSEQ = ISEQ
        ENDIF
        IS1 = ISEED(1,KSEQ)
        IS2 = ISEED(2,KSEQ)
      END IF
      IF(INDEX(CHOPT,'Q').NE.0) THEN
        IF(ISEQ.GE.1.AND.ISEQ.LE.MAXSEQ) THEN
          IS1 = LSEQS(1,ISEQ)
          IS2 = LSEQS(2,ISEQ)
        ELSE
          IS1 = 0
          IS2 = 0
        END IF
      END IF
C
 999  END
